/**
 * API 插件
 * 封装 $fetch，提供统一的 API 请求方法
 */
export default defineNuxtPlugin(() => {
  const config = useRuntimeConfig()
  const authStore = useAuthStore()

  // 使用配置的 API 地址
  const apiBaseUrl = config.public.apiBase
  
  console.log('🔧 API Base URL:', apiBaseUrl)

  /**
   * API 请求方法
   */
  const api = $fetch.create({
    baseURL: apiBaseUrl,
    
    // 请求拦截器
    onRequest({ options }) {
      // 添加认证 Token
      const token = authStore.token
      if (token) {
        options.headers = new Headers(options.headers as HeadersInit)
        options.headers.set('Authorization', `Bearer ${token}`)
      }
    },
    
    // 响应拦截器
    onResponse({ response }) {
      // 可以在这里统一处理响应
    },
    
    // 错误拦截器
    onResponseError({ response }) {
      // 401 未授权，清除登录状态
      if (response.status === 401) {
        authStore.logout()
        navigateTo('/login')
      }
      
      // 抛出错误，让调用方处理
      throw response._data || response
    },
  })

  return {
    provide: {
      api,
    },
  }
})


